''========================================================
'' Autor: 		Luis Antonio Lara Capetillo
'' Fecha Creación: 	21/5/2013
'' Descripcion: 	Clase Componente ctlMigracion
''========================================================

Public Class ctlMigracion

  Inherits System.Web.UI.UserControl
	  

	  

#Region "Propiedades"
  ''' <summary>
  ''' Obtiene o estable el valor NidViaje del TextBox txtNidViaje
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property NidNidViaje() As String
    Get
      Return Me.hfNidViaje.Value
    End Get
    Set(value As String)
      Me.hfNidViaje.Value = value
    End Set
  End Property
  ''' <summary>
  ''' Obtiene o estable el valor NidViaje del TextBox txtNidViaje
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property NidViaje() As String
    Get
      Return Me.txtNidViaje.Text
    End Get
    Set(value As String)
      Me.txtNidViaje.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor BuqueMotor del TextBox txtBuqueMotor
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property BuqueMotor() As String
    Get
      Return Me.txtBuqueMotor.Text
    End Get
    Set(value As String)
      Me.txtBuqueMotor.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o establece el valor Fecha_Arribo del TextBox txtFecha_Arribo
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Fecha_Arribo() As String
    Get
      Return Me.txtFecha_Arribo.Text
    End Get
    Set(value As String)
      Me.txtFecha_Arribo.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor PuertoMaritimo del TextBox txtPuertoMaritimo
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property PuertoMaritimo() As String
    Get
      Return Me.txtPuertoMaritimo.Text
    End Get
    Set(value As String)
      Me.txtPuertoMaritimo.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Bandera del TextBox txtBandera
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Bandera() As String
    Get
      Return Me.txtBandera.Text
    End Get
    Set(value As String)
      Me.txtBandera.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Matricula del TextBox txtMatricula
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Matricula() As String
    Get
      Return Me.txtMatricula.Text
    End Get
    Set(value As String)
      Me.txtMatricula.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene el nid de la opcion seleccionada
  ''' </summary>
  ''' <value></value>
  ''' <returns>numero de nid seleccionado</returns>
  ''' <remarks></remarks>
  Public ReadOnly Property NidTipo_Buque() As Int32
    Get
      If cbxTipo_Buque.SelectedValue = "- Seleccione una opcion -" Then
        Return 0
      Else
        Return CInt(cbxTipo_Buque.SelectedValue)
      End If
    End Get
  End Property
  ''' <summary>
  ''' Obtiene el nombre de la opcion seleccionada
  ''' </summary>
  ''' <value></value>
  ''' <returns>nombre de la opcion seleccionada</returns>
  ''' <remarks></remarks>
  Public ReadOnly Property NombreTipo_Buque() As String
    Get
      If cbxTipo_Buque.SelectedItem.Text = "- Seleccione una opcion -" Then
        Return ""
      Else
        Return cbxTipo_Buque.SelectedItem.Text
      End If
    End Get
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Procedencia del TextBox txtProcedencia
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Procedencia() As String
    Get
      Return Me.txtProcedencia.Text
    End Get
    Set(value As String)
      Me.txtProcedencia.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Destino del TextBox txtDestino
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Destino() As String
    Get
      Return Me.txtDestino.Text
    End Get
    Set(value As String)
      Me.txtDestino.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene el nid de la opcion seleccionada
  ''' </summary>
  ''' <value></value>
  ''' <returns>numero de nid seleccionado</returns>
  ''' <remarks></remarks>
  Public ReadOnly Property NidNidTrafico() As Int32
    Get
      If cbxNidTrafico.SelectedValue = "- Seleccione una opcion -" Then
        Return 0
      Else
        Return CInt(cbxNidTrafico.SelectedValue)
      End If
    End Get
  End Property
  ''' <summary>
  ''' Obtiene el nombre de la opcion seleccionada
  ''' </summary>
  ''' <value></value>
  ''' <returns>nombre de la opcion seleccionada</returns>
  ''' <remarks></remarks>
  Public ReadOnly Property NombreNidTrafico() As String
    Get
      If cbxNidTrafico.SelectedItem.Text = "- Seleccione una opcion -" Then
        Return ""
      Else
        Return cbxNidTrafico.SelectedItem.Text
      End If
    End Get
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor PesoBruto del TextBox txtPesoBruto
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property PesoBruto() As String
    Get
      Return Me.txtPesoBruto.Text
    End Get
    Set(value As String)
      Me.txtPesoBruto.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor PesoNeto del TextBox txtPesoNeto
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property PesoNeto() As String
    Get
      Return Me.txtPesoNeto.Text
    End Get
    Set(value As String)
      Me.txtPesoNeto.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Capitan del TextBox txtCapitan
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Capitan() As String
    Get
      Return Me.txtCapitan.Text
    End Get
    Set(value As String)
      Me.txtCapitan.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Nacionalidad del TextBox txtNacionalidad
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Nacionalidad() As String
    Get
      Return Me.txtNacionalidad.Text
    End Get
    Set(value As String)
      Me.txtNacionalidad.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Pasajeros del TextBox txtPasajeros
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Pasajeros() As String
    Get
      Return Me.txtPasajeros.Text
    End Get
    Set(value As String)
      Me.txtPasajeros.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Terminal del TextBox txtTerminal
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Terminal() As String
    Get
      Return Me.txtTerminal.Text
    End Get
    Set(value As String)
      Me.txtTerminal.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Cargamento del TextBox txtCargamento
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Cargamento() As String
    Get
      Return Me.txtCargamento.Text
    End Get
    Set(value As String)
      Me.txtCargamento.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Estadia del TextBox txtEstadia
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Estadia() As String
    Get
      Return Me.txtEstadia.Text
    End Get
    Set(value As String)
      Me.txtEstadia.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Muelle del TextBox txtMuelle
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Muelle() As String
    Get
      Return Me.txtMuelle.Text
    End Get
    Set(value As String)
      Me.txtMuelle.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Facturar del TextBox txtFacturar
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Facturar() As String
    Get
      Return Me.txtFacturar.Text
    End Get
    Set(value As String)
      Me.txtFacturar.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Rfc del TextBox txtRfc
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Rfc() As String
    Get
      Return Me.txtRfc.Text
    End Get
    Set(value As String)
      Me.txtRfc.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Obtiene o estable el valor Direccion del TextBox txtDireccion
  ''' </summary>
  ''' <value>valor tipo String</value>
  ''' <returns>valor tipo String</returns>
  ''' <remarks></remarks>
  Public Property Direccion() As String
    Get
      Return Me.txtDireccion.Text
    End Get
    Set(value As String)
      Me.txtDireccion.Text = value
    End Set
  End Property

  ''' <summary>
  ''' Habilita o Desabilita el Control para Edicion
  ''' </summary>
  ''' <value>True o False</value>
  ''' <remarks></remarks>
  Public WriteOnly Property Enabled() As Boolean
    Set(value As Boolean)
	  txtNidViaje.Enabled=value
      txtBuqueMotor.Enabled=value
      txtFecha_Arribo.Enabled=value
      txtPuertoMaritimo.Enabled=value
      txtBandera.Enabled=value
      txtMatricula.Enabled=value
      cbxTipo_Buque.Enabled=value
      txtProcedencia.Enabled=value
      txtDestino.Enabled=value
      cbxNidTrafico.Enabled=value
      txtPesoBruto.Enabled=value
      txtPesoNeto.Enabled=value
      txtCapitan.Enabled=value
      txtNacionalidad.Enabled=value
      infTripulantes.Enabled=value
      txtPasajeros.Enabled=value
      txtTerminal.Enabled=value
      txtCargamento.Enabled=value
      txtEstadia.Enabled=value
      txtMuelle.Enabled=value
      txtFacturar.Enabled=value
      txtRfc.Enabled=value
      txtDireccion.Enabled=value
      
    End Set
  End Property

  ''' <summary>
  ''' Habilita o Desabilita el Control para solo lectura
  ''' </summary>
  ''' <value>True o False</value>
  ''' <remarks>ReadOnly</remarks>
  Public WriteOnly Property Lectura() As Boolean
    Set(value As Boolean)
	  txtNidViaje.ReadOnly=value
      txtBuqueMotor.ReadOnly=value
      txtFecha_Arribo.ReadOnly=value
      txtPuertoMaritimo.ReadOnly=value
      txtBandera.ReadOnly=value
      txtMatricula.ReadOnly=value
      cbxTipo_Buque.ReadOnly=value
      txtProcedencia.ReadOnly=value
      txtDestino.ReadOnly=value
      cbxNidTrafico.ReadOnly=value
      txtPesoBruto.ReadOnly=value
      txtPesoNeto.ReadOnly=value
      txtCapitan.ReadOnly=value
      txtNacionalidad.ReadOnly=value
      infTripulantes.ReadOnly=value
      txtPasajeros.ReadOnly=value
      txtTerminal.ReadOnly=value
      txtCargamento.ReadOnly=value
      txtEstadia.ReadOnly=value
      txtMuelle.ReadOnly=value
      txtFacturar.ReadOnly=value
      txtRfc.ReadOnly=value
      txtDireccion.ReadOnly=value
      
    End Set
  End Property


#End Region
#Region "Eventos"
	Protected Sub btnNidViaje_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs) Handles btnNidViaje.Click
		
	End Sub

  Protected Sub cbxTipo_Buque_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles cbxTipo_Buque.SelectedIndexChanged
    
  End Sub

  Protected Sub cbxNidTrafico_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles cbxNidTrafico.SelectedIndexChanged
    
  End Sub

#End Region
#Region "Metodos"
  ''' <summary>
  ''' Metodo para llenar cbxTipo_Buque con datos de un DataTable y seleciona el primero
  ''' </summary>
  ''' <param name="data"> Tabla con los datos</param>
  ''' <param name="nombre">Nombre de la columna de los nombres</param>
  ''' <param name="nid"> Nombre de la columna con los nid</param>
  ''' <remarks></remarks>
  Public Sub llenarcbxTipo_Buque(ByVal data As DataTable, ByVal nombre As String, ByVal nid As String)
    Me.cbxTipo_Buque.DataSource = data
    Me.cbxTipo_Buque.DataTextField = nombre.ToString
    Me.cbxTipo_Buque.DataValueField = nid.ToString
    Me.cbxTipo_Buque.DataBind()
    Me.cbxTipo_Buque.Items.Add("- Seleccione una opcion -")
    Me.cbxTipo_Buque.SelectedIndex = Me.cbxTipo_Buque.Items.Count - 1
  End Sub

  ''' <summary>
  ''' Metodo para llenar cbxNidTrafico con datos de un DataTable y seleciona el primero
  ''' </summary>
  ''' <param name="data"> Tabla con los datos</param>
  ''' <param name="nombre">Nombre de la columna de los nombres</param>
  ''' <param name="nid"> Nombre de la columna con los nid</param>
  ''' <remarks></remarks>
  Public Sub llenarcbxNidTrafico(ByVal data As DataTable, ByVal nombre As String, ByVal nid As String)
    Me.cbxNidTrafico.DataSource = data
    Me.cbxNidTrafico.DataTextField = nombre.ToString
    Me.cbxNidTrafico.DataValueField = nid.ToString
    Me.cbxNidTrafico.DataBind()
    Me.cbxNidTrafico.Items.Add("- Seleccione una opcion -")
    Me.cbxNidTrafico.SelectedIndex = Me.cbxNidTrafico.Items.Count - 1
  End Sub

  ''' <summary>
  ''' Metodo para asignar los datos al componente 
  ''' </summary>
  ''' <param name="tablaDatos">DataTable donde se obtienen los datos</param>
  ''' <remarks></remarks>
  Public Sub AsignarDatos(ByVal tablaDatos As DataTable)
    Me.txtNidViaje.Text= tablaDatos.Rows(0)("NidViaje").ToString
    Me.txtBuqueMotor.Text= tablaDatos.Rows(0)("BuqueMotor").ToString
    Me.txtFecha_Arribo.Text= tablaDatos.Rows(0)("Fecha_Arribo").ToString
    Me.txtPuertoMaritimo.Text= tablaDatos.Rows(0)("PuertoMaritimo").ToString
    Me.txtBandera.Text= tablaDatos.Rows(0)("Bandera").ToString
    Me.txtMatricula.Text= tablaDatos.Rows(0)("Matricula").ToString
    Me.txtProcedencia.Text= tablaDatos.Rows(0)("Procedencia").ToString
    Me.txtDestino.Text= tablaDatos.Rows(0)("Destino").ToString
    Me.txtPesoBruto.Text= tablaDatos.Rows(0)("PesoBruto").ToString
    Me.txtPesoNeto.Text= tablaDatos.Rows(0)("PesoNeto").ToString
    Me.txtCapitan.Text= tablaDatos.Rows(0)("Capitan").ToString
    Me.txtNacionalidad.Text= tablaDatos.Rows(0)("Nacionalidad").ToString
    Me.txtPasajeros.Text= tablaDatos.Rows(0)("Pasajeros").ToString
    Me.txtTerminal.Text= tablaDatos.Rows(0)("Terminal").ToString
    Me.txtCargamento.Text= tablaDatos.Rows(0)("Cargamento").ToString
    Me.txtEstadia.Text= tablaDatos.Rows(0)("Estadia").ToString
    Me.txtMuelle.Text= tablaDatos.Rows(0)("Muelle").ToString
    Me.txtFacturar.Text= tablaDatos.Rows(0)("Facturar").ToString
    Me.txtRfc.Text= tablaDatos.Rows(0)("Rfc").ToString
    Me.txtDireccion.Text= tablaDatos.Rows(0)("Direccion").ToString
    
  End Sub

  

  


    ''' <summary>
    ''' Funcion para verificar los datos del control
    ''' </summary>
    ''' <returns>str_Mensaje</returns>
    ''' <remarks>si hay datos no validos regresara un mensaje de lo contrario ""</remarks>
    Public Function VerificarDatos() As String
        Dim validar As New ValidacionCampo
        Dim str_Mensaje = ""
		
		str_Mensaje += validar.ValidaCampo(txtNidViaje, "NidViaje")
    str_Mensaje += validar.ValidaCampo(txtBuqueMotor, "BuqueMotor")
    str_Mensaje += validar.ValidaCampo(txtFecha_Arribo, "Fecha_Arribo")
    str_Mensaje += validar.ValidaCampo(txtPuertoMaritimo, "PuertoMaritimo")
    str_Mensaje += validar.ValidaCampo(txtBandera, "Bandera")
    str_Mensaje += validar.ValidaCampo(txtMatricula, "Matricula")
    str_Mensaje += validar.ValidaCampo(cbxTipo_Buque, "Tipo_Buque")
    str_Mensaje += validar.ValidaCampo(txtProcedencia, "Procedencia")
    str_Mensaje += validar.ValidaCampo(txtDestino, "Destino")
    str_Mensaje += validar.ValidaCampo(cbxNidTrafico, "NidTrafico")
    str_Mensaje += validar.ValidaCampo(txtPesoBruto, "PesoBruto")
    str_Mensaje += validar.ValidaCampo(txtPesoNeto, "PesoNeto")
    str_Mensaje += validar.ValidaCampo(txtCapitan, "Capitan")
    str_Mensaje += validar.ValidaCampo(txtNacionalidad, "Nacionalidad")
    str_Mensaje += validar.ValidaCampo(infTripulantes, "Tripulantes")
    str_Mensaje += validar.ValidaCampo(txtPasajeros, "Pasajeros")
    str_Mensaje += validar.ValidaCampo(txtTerminal, "Terminal")
    str_Mensaje += validar.ValidaCampo(txtCargamento, "Cargamento")
    str_Mensaje += validar.ValidaCampo(txtEstadia, "Estadia")
    str_Mensaje += validar.ValidaCampo(txtMuelle, "Muelle")
    str_Mensaje += validar.ValidaCampo(txtFacturar, "Facturar")
    str_Mensaje += validar.ValidaCampo(txtRfc, "Rfc")
    str_Mensaje += validar.ValidaCampo(txtDireccion, "Direccion")
    
		
        Return str_Mensaje
    End Function

#End Region
End Class
